package com.jingxuan.service;

import com.jingxuan.dto.request.RecordVisitRequest;
import com.jingxuan.dto.request.RecordLinkClickRequest;
import com.jingxuan.dto.response.VisitStatsResponse;

/**
 * 访问统计服务接口
 */
public interface VisitStatsService {

    /**
     * 记录页面访问
     * @param request 访问请求
     * @param ipAddress IP地址
     * @param userAgent 浏览器UA
     * @param userId 用户ID（可为null）
     */
    void recordPageVisit(RecordVisitRequest request, String ipAddress, String userAgent, Long userId);

    /**
     * 记录链接跳转
     * @param request 跳转请求
     * @param userId 用户ID（可为null）
     */
    void recordLinkClick(RecordLinkClickRequest request, Long userId);

    /**
     * 获取访问统计数据
     * @param period 时间周期：6d（近6天）、30d（近30天）、quarter（近一季度）、year（近一年）
     * @return 统计数据
     */
    VisitStatsResponse getVisitStats(String period);

    /**
     * 刷新每日统计缓存
     */
    void refreshDailyStats();
}

